// 5.数据封装
/**
 * 1. 概念
 *      数据封装是一种把数据和操作数据的函数绑定在一起的机制，这样避免受到外界的干扰和误用。
 *      数据封装引申出另一个重要的OOP概念————**数据隐藏**。
 *      数据抽象是一种**仅向用户**暴露接口而把具体的实现隐藏起来的机制。
 *      C++通过创建类来支持封装和数据隐藏（访问修饰符）。
 *      把一个类定义为另一个类的友元类，会暴露实现细节，从而降低封装性。理想的做法是尽可能地对外隐藏每个类的实现细节。
 * 
 * 2. 设计策略
 *    通常情况下，我们都会设置类成员状态为私有，除非我们真的需要将其暴露，这样才能保证良好的封装性。
*/
#include <iostream>

#define __mark 1

#if 1 == __mark
/**
 * #
*/
int main(void)
{

  printf("-----------end-------------\n");
  return 0;
}
#elif 2 == __mark
int main(void)
{

  printf("-----------end-------------\n");
  return 0;
}
#endif